home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / gfront11.lha / GUIFront / Demos / Source / toolmanager.c < prev    next >
C/C++ Source or Header  |  1994-11-01  |  6KB  |  176 lines

  1.  
  2. /* ToolManager.c - The GUI of the 'ToolManager' program
  3.  *
  4.  * This is a GUIFront example GUI. To build an example, compile and link this
  5.  * file with Generic.o (also supplied).
  6.  * Everything prefixed with DEMO_ is exported to Generic.o.
  7.  */
  8.  
  9. #include <libraries/guifront.h>
  10.  
  11. /* First, some Gadget ID's */
  12.  
  13. enum
  14. {
  15.     GID_OBJTYPE,
  16.     GID_OBJLIST,
  17.     GID_TOP,
  18.     GID_UP,
  19.     GID_DOWN,
  20.     GID_BOTTOM,
  21.     GID_SORT,
  22.     GID_NEW,
  23.     GID_EDIT,
  24.     GID_COPY,
  25.     GID_REMOVE,
  26.     GID_SAVE,
  27.     GID_USE,
  28.     GID_TEST,
  29.     GID_CANCEL,
  30. };
  31.  
  32. /* Some data and tag items we'll be needing later */
  33.  
  34. static const STRPTR objtypelabels[] =
  35. {
  36.     "Exec",
  37.     "Image",
  38.     "Sound",
  39.     "Menu",
  40.     "Icon",
  41.     "Dock",
  42.     "Access",
  43.     NULL,
  44. };
  45.  
  46. static const struct TagItem objtypetags[] =
  47. {
  48.     {GTCY_Labels, objtypelabels},
  49.     {TAG_DONE},
  50. };
  51.  
  52. extern struct MinList objlistlabels;
  53.  
  54. static struct Node objlistnodes[] =
  55. {
  56.     {&objlistnodes[1], (struct Node *)&objlistlabels.mlh_Head, 0, 0, "Shell"},
  57.     {&objlistnodes[2], &objlistnodes[0], 0, 0, "FlushMem"},
  58.     {&objlistnodes[3], &objlistnodes[1], 0, 0, "FileReader"},
  59.     {&objlistnodes[4], &objlistnodes[2], 0, 0, "ToolManager"},
  60.     {&objlistnodes[5], &objlistnodes[3], 0, 0, "OpenPubScreen"},
  61.     {&objlistnodes[6], &objlistnodes[4], 0, 0, "ClosePubScreen"},
  62.     {&objlistnodes[7], &objlistnodes[5], 0, 0, "LockDH0"},
  63.     {&objlistnodes[8], &objlistnodes[6], 0, 0, "LockDH1"},
  64.     {&objlistnodes[9], &objlistnodes[7], 0, 0, "UnlockDH1"},
  65.     {&objlistnodes[10], &objlistnodes[8], 0, 0, "UnlockDH0"},
  66.     {(struct Node *)&objlistlabels.mlh_Tail, &objlistnodes[9], 0, 0, "EditFile"},
  67. };
  68.  
  69. struct MinList objlistlabels =
  70. {
  71.     (struct MinNode *)&objlistnodes[0], NULL,(struct MinNode *)&objlistnodes[10]
  72. };
  73.  
  74. static const struct TagItem objlisttags[] =
  75. {
  76.     {GTLV_ShowSelected, NULL},
  77.     {GTLV_Labels, &objlistlabels},
  78.     {TAG_DONE},
  79. };
  80.  
  81. /* Now, the GadgetSpec's we'll be needing for this GUI */
  82.  
  83. static GadgetSpec gadgetspecs[] =
  84. {
  85.     {CYCLE_KIND,    0, 0, {0,0,0,0,"_Object Type:",NULL,GID_OBJTYPE,PLACETEXT_LEFT},objtypetags,GS_DefaultTags},
  86.     {LISTVIEW_KIND, 30,8, {0,0,0,0,"Object List",NULL,GID_OBJLIST,PLACETEXT_ABOVE},objlisttags,GS_DefaultTags},
  87.     {BUTTON_KIND,   0, 0, {0,0,0,0,"Top", NULL, GID_TOP, PLACETEXT_IN},NULL,GS_DefaultTags},
  88.     {BUTTON_KIND,   0, 0, {0,0,0,0,"Up", NULL, GID_UP, PLACETEXT_IN},NULL,GS_DefaultTags},
  89.     {BUTTON_KIND,   0, 0, {0,0,0,0,"Down", NULL, GID_DOWN, PLACETEXT_IN},NULL,GS_DefaultTags},
  90.     {BUTTON_KIND,   0, 0, {0,0,0,0,"Bottom", NULL, GID_BOTTOM, PLACETEXT_IN},NULL,GS_DefaultTags},
  91.     {BUTTON_KIND,   0, 0, {0,0,0,0,"So_rt", NULL, GID_SORT, PLACETEXT_IN},NULL,GS_DefaultTags},
  92.     {BUTTON_KIND,   0, 0, {0,0,0,0,"_New...", NULL, GID_NEW, PLACETEXT_IN},NULL,GS_DefaultTags},
  93.     {BUTTON_KIND,   0, 0, {0,0,0,0,"_Edit...", NULL, GID_EDIT, PLACETEXT_IN},NULL,GS_DefaultTags},
  94.     {BUTTON_KIND,   0, 0, {0,0,0,0,"Co_py", NULL, GID_COPY, PLACETEXT_IN},NULL,GS_DefaultTags},
  95.     {BUTTON_KIND,   0, 0, {0,0,0,0,"Remove", NULL, GID_REMOVE, PLACETEXT_IN},NULL,GS_DefaultTags},
  96.     {BUTTON_KIND,   0, 0, {0,0,0,0,"_Save", NULL, GID_SAVE, PLACETEXT_IN},NULL,GS_DefaultTags},
  97.     {BUTTON_KIND,   0, 0, {0,0,0,0,"_Use", NULL, GID_USE, PLACETEXT_IN},NULL,GS_DefaultTags},
  98.     {BUTTON_KIND,   0, 0, {0,0,0,0,"_Test", NULL, GID_TEST, PLACETEXT_IN},NULL,GS_DefaultTags},
  99.     {BUTTON_KIND,   0, 0, {0,0,0,0,"_Cancel", NULL, GID_CANCEL, PLACETEXT_IN},NULL,GS_DefaultTags},
  100. };
  101.  
  102. /* Now, we group all of these GadgetSpecs into an array of pointers, so the
  103.  * layout engine can locate gadgets merely by their Gadget IDs.
  104.  */
  105.  
  106. GadgetSpec *DEMO_GadgetSpecList[] =
  107. {
  108.     &gadgetspecs[0], &gadgetspecs[1], &gadgetspecs[2], &gadgetspecs[2],
  109.     &gadgetspecs[3], &gadgetspecs[4], &gadgetspecs[5], &gadgetspecs[6],
  110.     &gadgetspecs[7], &gadgetspecs[8], &gadgetspecs[9], &gadgetspecs[10],
  111.     &gadgetspecs[11], &gadgetspecs[12], &gadgetspecs[13], &gadgetspecs[14],
  112.     NULL,
  113. };
  114.  
  115. /* Finally, the layout tag list itself. This is where most of the work is
  116.  * done. This list completely describes how the above gadgets are arranged
  117.  * in groups in the GUI.
  118.  */
  119.  
  120. ULONG DEMO_LayoutList[] =
  121. {
  122.     GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
  123.  
  124.     GUIL_GadgetSpecID, GID_OBJTYPE,
  125.  
  126.     GUIL_HorizGroup, 1,
  127.         GUIL_Flags, GUILF_PropShare,
  128.         GUIL_GadgetSpecID, GID_OBJLIST,
  129.         GUIL_VertGroup, 1,
  130.             GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
  131.             GUIL_GadgetSpecID, GID_TOP,
  132.             GUIL_GadgetSpecID, GID_UP,
  133.             GUIL_GadgetSpecID, GID_DOWN,
  134.             GUIL_GadgetSpecID, GID_BOTTOM,
  135.             GUIL_GadgetSpecID, GID_SORT,
  136.         TAG_DONE,
  137.     TAG_DONE,
  138.  
  139.     GUIL_HorizGroup, 1,
  140.         GUIL_Flags, GUILF_EqualShare | GUILF_EqualHeight,
  141.  
  142.         GUIL_GadgetSpecID, GID_NEW,
  143.         GUIL_GadgetSpecID, GID_EDIT,
  144.         GUIL_GadgetSpecID, GID_COPY,
  145.         GUIL_GadgetSpecID, GID_REMOVE,
  146.     TAG_DONE,
  147.  
  148.     GUIL_HorizGroup, 1,
  149.         GUIL_Flags, GUILF_EqualShare | GUILF_EqualHeight,
  150.         GUIL_GadgetSpecID, GID_SAVE,
  151.         GUIL_GadgetSpecID, GID_USE,
  152.         GUIL_GadgetSpecID, GID_TEST,
  153.         GUIL_GadgetSpecID, GID_CANCEL,
  154.     TAG_DONE,
  155.  
  156.     TAG_DONE,
  157. };
  158.  
  159. /* Obligatory version tag */
  160.  
  161. static const char ver[] = "$VER: ToolManager 1.0 " __AMIGADATE__;
  162.  
  163. /* Now, some globals used by Generic.o during the call to GF_CreateGUIA() */
  164.  
  165. int DEMO_InitialOrientation = GUIL_VertGroup;
  166.  
  167. STRPTR DEMO_WindowTitle = "ToolManager GUI";
  168. STRPTR DEMO_AppID       = "ToolManager";
  169.  
  170. STRPTR DEMO_Version     = "1.0",
  171.        DEMO_LongDesc    = "Demo program - Toolmanager prefs editor",
  172.        DEMO_Author      = "Michael Berg",
  173.        DEMO_Date        = __AMIGADATE__;
  174.  
  175. BOOL   DEMO_Backfill    = FALSE;
  176.